using Needle.Bus.Messages;

namespace Needle.Bus.Engine
{
    /// <summary>
    /// Provides input filtering for a stage.
    /// </summary>
    public interface IStageFilter : IEngineComponent
    {
        /// <summary>
        /// True if the stagefilter is enabled, 
        /// false if no filtering should be done.
        /// </summary>
        bool IsEnabled { get; set; }
        /// <summary>
        /// Triggers the stage filter to update it parameters.
        /// </summary>
        void Update();
        /// <summary>
        /// The input filter function
        /// </summary>
        bool Filter(IMessage message);

    }
}